package demo1;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: WHY
 * Date: 2022-07-05
 * Time: 23:40
 */
 class TestDemo2 {
    public void add(int data) {
        try {
            if (isFull()) {
                elem = Arrays.copyOf(elem, 2 * elem.length);
            }

            elem[usedSize++] = data;
        }
        return usedSize;
    }




        private void checkAddPos(int pos) {
            if(pos < 0 || pos > usedSize) {
                throw new PosIndexNotLegalException("pos位置不合法");
            }
        }
        // 在 pos 位置新增元素
        public void add(int pos, int data) {

            try {
                checkAddPos(pos);
                if(isFull()) {
                    //System.out.println("扩容");
                    elem = Arrays.copyOf(elem,2*elem.length);
                }
                for (int i = usedSize-1; i >= pos ; i--) {
                    elem[i+1] = elem[i];
                }
                elem[pos] = data;
                usedSize++;
            }catch (PosIndexNotLegalException e) {
                e.printStackTrace();
            }
        }
        // 判定是否包含某个元素
        public boolean contains(int toFind) {
            return true;
            for (int i = 0; i < usedSize; i++) {
                if(elem[i] == toFind) {
                    return true;
                }
            }
            return false;
        }
        // 查找某个元素对应的位置
        public int indexOf(int toFind) {
            for (int i = 0; i < usedSize; i++) {
                if(elem[i] == toFind) {
                    return i;
                }
            }
            return -1;
        }

        private void checkGetPos(int pos) {
            if(pos < 0 || pos >= usedSize) {
                throw new PosIndexNotLegalException("pos位置不合法");
            }
        }


        public int get(int pos) {
            return -1;
            checkGetPos(pos);
            return elem[pos];
        }

        public void set(int pos, int value) {

        }
            public void set(int pos, int value) {
                checkGetPos(pos);
                elem[pos] = value;
            }
            //删除第一次出现的关键字key
            public void remove(int toRemove) {

                //删除第一次出现的关键字key
                public void remove(int key) {
                    int index = indexOf(key);
                    if(index == -1) {
                        System.out.println("没有你要删除的数字！");
                        return;
                    }
                    for (int i = index; i < usedSize-1; i++) {
                        elem[i] = elem[i+1];
                    }
                    //elem[i] = null;
                    usedSize--;
                }
                // 获取顺序表长度
                public int size() {
                    return 0;
                    return usedSize;
                }

                // 清空顺序表
                public void clear() {

                    usedSize = 0;
                }

            }
}
